22 research outputs found

    Erlang programok statikus elemzése és szeletelése

    Get PDF
    A funkcionális programozási nyelvek terjedésének velejárója, hogy felmerül az igény olyan eszközökre, amelyek a fejlesztési folyamatot támogatják. Ezek lehetnek futási idejű eszközök, vagy olyanok, melyek csupán a forráskód elemzésével kı́nálnak hasznos információkat a fejlesztők számára. Az Erlang ipari környezetben is gyakran használt funkcionális programozási nyelv. A RefactorErl egy statikus elemző és refaktoráló eszköz Erlanghoz, mely számos transzformációt biztosı́t a forráskód jelentésmegőrző átalakı́tására, másrészről kiterjedt statikus elemzőkészlettel segı́ti a fejlesztőket a mindennapos tevékenységükben. Kutatásomban olyan elemzési módszerekkel foglalkoztam, amelyek segı́tségével az Erlang programok forráskódjában rejlő összetett összefüggések nyerhetők ki. Ezek az eredmények pedig további magasabb szintű elemzések alapját képzik. Az ismertetett eredményeim a vezérlés és az Erlang folyamatok közötti kapcsolatok elemzéséhez kapcsolódnak. A dolgozatomban Erlang programok vezérlésfolyam-gráfját adtam meg, amely tartalmazza a programok végrehajtása során előálló lehetséges végrehajtási utakat. A gráfot a nyelv szintaktikus kategóriáihoz rendelt formális szabályok segı́tségével definiáltam, amelyek a nyelv szemantikájának megfelelően adják meg a vezérlésfolyam-gráf éleit. A vezérlésfolyam-gráf felhasználásra került további elemzésekhez is, mint például a párhuzamosı́tható komponensek azonosı́tása. A vezérlésfolyam-gráf, illetve a benne foglalt információk felhasználhatóak a forráskódban történő változások hatáselemzéséhez. A vezérlésfüggőségi gráf egy kompaktabb reprezentáció, amely a vezérlési utakban lévő szekvenciák eliminálásával már csak a kifejezések közötti közvetlen függőségeket tartalmazza. Megadtam Erlang programokra a vezérlésfüggőségi gráfot, amelyet adatfüggőségi információkkal egészı́tettem ki. Az ı́gy definiált Erlang függőségi gráf felhasználható gráf alapú statikus programszeleteléshez. A definiált infrastruktúrára épı́tve megadtam egy hatáselemzés alapú teszteset szelekciós módszert. A módszer azon tesztesetek halmazát adja meg, amelyek érintettek lehetnek a változtatás/transzformáció kapcsán. Azaz a változtatás hatása elterjedhet a tesztelt funkcionalitásba. Az elemzés nem csak a transzformációk hatásának elemzésére, hanem tetszőleges változás elemzésére is használható. Dolgozatomban bemutattam Erlang programok egy statikus kommunikációs modelljét. Megadtam azokat az algoritmusokat, melyek segı́tségével felderı́thetőek az elindı́tott Erlang folyamatok és a köztük aszinkron üzenetküldésekkel lebonyolı́tott kommunikáció. A modellbe felvettem olyan rejtett kommunikációs elemeket is, mint a közös osztott memóriának tekinthető Erlang Term Storage (ets) táblák használata. Megadtam azokat a statikus elemzési algoritmusokat, melyek felhasználásával kiegészı́thető a kommunikációs gráf speciális Erlang folyamatokkal (például generikus szerverek) és az interfészeiken keresztül történő rejtett kommunikációval. A kommunikációs gráf kiválóan használható a kódban rejlő összefüggések megjelenı́tésére, kódmegértés, konkurenciából fakadó hibakeresés támogatásához. Ugyanakkor felhasználható konkurens programok változásához köthető hatáselemzés pontosı́tásához is

    Building dependency graph for slicing erlang programs

    Get PDF
    Program slicing is a well-known technique that utilizes dependency graphs and static program analysis. Our goal is to perform impact analysis of Erlang programs based on the resulted program slices, that is we want to measure the impact of any change made on the source code: especially we want to select a subset of test cases which must be rerun after the modification. However impact analyzer tools exist for object oriented languages, the used dependency graphs heavily depend on the syntax and semantics of the used programming language, thus we introduce dependency graphs for a dynamically typed functional programming language, Erlang

    Static Analysis for Divide-and-Conquer Pattern Discovery

    Get PDF
    Routines implementing divide-and-conquer algorithms are good candidates for parallelization. Their identifying property is that such a routine divides its input into "smaller" chunks, calls itself recursively on these smaller chunks, and combines the outputs into one. We set up conditions which characterize a wide range of d&c routine definitions. These conditions can be verified by static program analysis. This way d&c routines can be found automatically in existing program texts, and their parallelization based on semi-automatic refactoring can be facilitated. We work out the details in the context of the Erlang programming language

    Towards version controlling in RefactorErl

    Get PDF
    Static source code analyser tools are operating on an intermediate representation of the source code that is usually a tree or a graph. Those representations need to be updated according to the different versions of the source code. However, the developers might be interested in the changes or might need information about previous versions, therefore, keeping different versions of the source code analysed by the tools are required. RefactorErl is an open-source static analysis and transformation tool for Erlang that uses a graph representation to store and manipulate the source code. The aim of our research was to create an extension of the Semantic Program Graph of RefactorErl that is able to store different versions of the source code in a single graph. The new method resulted in 30% memory footprint decrease compared to the available workaround solutions

    Optimization of Quality Attributes and Atomic Force Microscopy Imaging of Reconstituted Nanodroplets in Baicalin Loaded Self-Nanoemulsifying Formulations

    Get PDF
    The objective of the study was to develop baicalin loaded liquid self-nanoemulsifying drug delivery systems (BSNEDDS) and to characterize them by physicochemical methods in order to optimize the composition and quality attributes. Atomic force microscopy (AFM) was utilized to evaluate the morphological characteristics and size distribution of reconstituted nanoemulsion droplets with a new sample preparation method for the elucidation of individual nanodroplets without any signs of coalescence. Response surface methodology and desirability approach was used to select the optimized composition related to droplet size, zeta-potential, polydispersity index (PDI), and turbidity characteristics. Droplet size distribution measured by dynamic light scattering method was highly desirable with 52.87 ± 0.5322 nm, which was confirmed by AFM imaging. The optimized formula contains Peceol® (14.29%, w/w), Kolliphor® EL (57.14%, w/w), and Transcutol® P (28.57%, w/w). Long-term stability analysis did not show any significant change in droplet size or PDI over the investigated period. More than 40.5-times solubility improvement was achieved with the optimized BSNEDDS correlated to solubility of baicalin in distilled water. In vitro dissolution studies at pH 1.2 and pH 6.8 were performed and revealed that the optimized BSNEDDS formula showed pH independent drug dissolution, and 100% of incorporated baicalin dissolved within five minutes in rapidly dispersing nanodroplets

    Abnormal basement membrane results in increased keratinocyte-derived periostin expression in psoriasis similar to wound healing

    Get PDF
    The psoriatic skin resembles wound healing, and it shows abnormalities at the basement membrane (BM), also in the non-lesional skin. Fibroblast-derived dermal periostin has well-known functions in wound healing and Th2-mediated diseases, such as atopic dermatitis. Here we show that serum periostin level was elevated in psoriatic patients, remarkably in the systemically treated ones. Obvious periostin positivity was detected in basal keratinocytes of the non-lesional, lesional, and previously-lesional psoriatic vs. healthy skin. Ex vivo skin models were generated to examine how different skin injuries affect periostin expression during wound healing. Our newly developed cultured salt-split model demonstrated that BM-injury induced periostin expression in basal keratinocytes, and periostin levels in the supernatant were also increased upon healing. In wound healing models, β1-integrin expression was similarly induced. β1-integrin blocking caused reduced periostin expression in in vitro scratch assay, indicating that β1-integrin can mediate periostin production. In contrast to atopic dermatitis, psoriatic basal keratinocytes are in an activated state and show a stable wound healing-like phenotype with the overexpression of periostin. This abnormal BM-induced wound healing as a potential compensatory mechanism can be initiated already in the non-lesional skin present in the lesion and keratinocytes can remain activated in the healed skin
    corecore